package com.wjm.demo.test0.lambda_test;

public class TestMain3 {

    public static void main(String[] args) {
        //在某些场景下，Lambda表达式要做的事情，其实在另外一个地方已经写过了
        //那么此时通过Lambda表达式重复编写相同的代码，就是浪费
        //那么如何才能复用已经存在的方法逻辑呢？答案是：Lambda方法引用
        method(num -> {
                    int result;
                    if (num >= 0) {
                        result = num;
                    } else {
                        result = -num;
                    }
                    return result;
                }

        );
        //方法引用的写法：
        //通过类名称引用静态方法，格式
        //类名称::静态方法
        //方法引用的意义：Math类当中有一个abs静态方法，已经有了现成的功能可以求绝对值，直接拿过来用
        method(  Math::abs );//答案是：通过方法引用简化Lambda表达式
        //输出如下：
        //绝对值是25
        //绝对值是25
    }

    public static void method(Calculator2 calculator2) {
        int abs = calculator2.getAbs(-25);
        System.out.println("绝对值是" + abs);
    }

}
